package cn.tedu.egmybatis1.mapper;

import cn.tedu.egmybatis1.pojo.entity.Product;
import cn.tedu.egmybatis1.pojo.vo.ProductVO1;
import cn.tedu.egmybatis1.pojo.vo.ProductVO2;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface ProductMapper {
    /**
     * 1.添加商品信息
     */
    @Insert("INSERT INTO mybatisdb.product(title,price,stock) " +
            "VALUES(#{title},#{price},#{stock})")
    int insertProduct(Product product);

    /**
     * 2.通过id查询一个商品的标题和价格 selectSingleProduct
     */
    @Select("SELECT title,price FROM mybatisdb.product WHERE id=#{pid}")
    ProductVO1 selectSingleProduct(int pid);

    /**
     * 3.通过id 删除一个商品信息 deleteById
     */
    @Delete("DELETE FROM mybatisdb.product WHERE id=#{pid}")
    int deleteProductById(int pid);

    /**
     * 4.查询所有商品的 标题和库存 selectManyProduct
     */
    @Select("SELECT title,stock FROM mybatisdb.product")
    List<ProductVO2> selectAllProducts();

    /**
     * 5.根据商品id修改商品信息
     */
    @Update("UPDATE mybatisdb.product " +
            "SET title=#{title},price=#{price},stock=#{stock} " +
            "WHERE id=#{id}")
    int updateProduct(Product product);
}
